home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1999 March
/
EnigmA AMIGA RUN 35 (1999)(G.R. Edizioni)(IT)[!][issue 1999-03].iso
/
earcd
/
devel
/
vbcc-68k-src
/
machines
/
amiga68k
/
libsrc
/
extra
/
chdir.c
next >
Wrap
C/C++ Source or Header
|
1999-01-01
|
529b
|
34 lines
#include <stdlib.h>
#include <stdio.h>
#include <dos/dos.h>
static BPTR oldlock;
static int havelock;
static void __exitchdir(void)
{
if (havelock) UnLock(CurrentDir(oldlock));
}
int chdir(const char *path)
{
BPTR fl;
int ret;
if(!havelock){
if (atexit(__exitchdir)) exit(EXIT_FAILURE);
if (!(fl=Lock("",SHARED_LOCK))) exit(EXIT_FAILURE);
oldlock=CurrentDir(fl);
havelock=1;
}
if ((fl=Lock((STRPTR)path,SHARED_LOCK)))
{
UnLock(CurrentDir(fl));
return(0);
}
return(EOF);
}